package net.myjung.account.impl;

import net.myjung.Myjung;
import net.myjung.account.AccAccount;
import net.myjung.account.AccFactory;
import net.myjung.content.CttFactory;
import net.myjung.content.CttText;
import net.myjung.interceptor.AbstractManagerInterceptor;
import net.myjung.model.Conds;
import net.myjung.model.CreateObjectParameters;
import net.myjung.model.DeleteObjectParameters;
import net.myjung.model.Filter;

public class AccManagerInterceptor extends AbstractManagerInterceptor {

	// Account scope begin
//	public void beforeGetAccount(GetObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void afterGetAccount(GetObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void throwsGetAccount(GetObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void beforeSetAccount(SetObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void afterSetAccount(SetObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void throwsSetAccount(SetObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void beforeCreateAccount(CreateObjectParameters params) throws Exception {
//		// TODO
//	}
	public void afterCreateAccount(CreateObjectParameters params) throws Exception {
		AccAccount obj = (AccAccount) params.getObject();
		if (obj == null)
			return;
		CttText text = new CttText();
		text.setId(obj.getUsername() + "_navi");
		text.setName(new StringBuffer(obj.getUsername()).append(" ").append(" navigator").toString());
		text.setUsername(obj.getUsername());
		text.setType("navigator");
		text.setData("<rt/>");
		CttFactory.getManager().setText(obj.getUsername(), text, null);
	}
//	public void throwsCreateAccount(CreateObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void beforeUpdateAccount(UpdateObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void afterUpdateAccount(UpdateObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void throwsUpdateAccount(UpdateObjectParameters params) throws Exception {
//		// TODO
//	}
	public void beforeDeleteAccount(DeleteObjectParameters params) throws Exception {
		String username = params.getId();
		if (Myjung.isEmpty(username))
			return;
		AccAccount obj = AccFactory.getManager().getAccount(username, null);
		if (obj == null)
			return;
		Conds conds = new Conds();
		conds.addFilter(new Filter("username", username));
		CttFactory.getManager().deleteTextList(conds, null);
	}
//	public void afterDeleteAccount(DeleteObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void throwsDeleteAccount(DeleteObjectParameters params) throws Exception {
//		// TODO
//	}
//	public void beforeGetAccountList(GetObjectListParameters params) throws Exception {
//		// TODO
//	}
//	public void afterGetAccountList(GetObjectListParameters params) throws Exception {
//		// TODO
//	}
//	public void throwsGetAccountList(GetObjectListParameters params) throws Exception {
//		// TODO
//	}
//	public void beforeGetAccountSize(GetObjectSizeParameters params) throws Exception {
//		// TODO
//	}
//	public void afterGetAccountSize(GetObjectSizeParameters params) throws Exception {
//		// TODO
//	}
//	public void throwsGetAccountSize(GetObjectSizeParameters params) throws Exception {
//		// TODO
//	}
//	public void beforeDeleteAccountList(DeleteObjectListParameters params) throws Exception {
//		// TODO
//	}
//	public void afterDeleteAccountList(DeleteObjectListParameters params) throws Exception {
//		// TODO
//	}
//	public void throwsDeleteAccountList(DeleteObjectListParameters params) throws Exception {
//		// TODO
//	}
	// Account scope end

}